package com.baidu.bas.core.acl;

import com.baidu.bas.core.view.EruptModel;
import com.baidu.bas.core.view.TableQueryVo;

import javax.servlet.http.HttpServletRequest;
import java.io.Serializable;

/**
 * @author liuzhenchuan@foxmail.com
 * @date 2021/6/8
 */
public interface Acl {

    /**
     *
     * @param tableQueryVo
     * @param eruptModel
     * @param request
     */
    void beforeExecuteQuery(TableQueryVo tableQueryVo, EruptModel eruptModel, HttpServletRequest request);

    /**
     *
     * @param tableQueryVo
     * @param eruptModel
     * @param request
     */
    void beforeExecuteView(TableQueryVo tableQueryVo, EruptModel eruptModel, Serializable id, HttpServletRequest request);

    /**
     *
     * @param eruptModel
     * @param value
     * @param id
     */
    void beforeExecuteDelete(EruptModel eruptModel, Object value, Serializable id, HttpServletRequest request);

    /**
     *
     * @param eruptModel
     * @param value
     */
    void beforeExecuteAdd(EruptModel eruptModel,Object value,HttpServletRequest request);

    /**
     *
     * @param eruptModel
     * @param value
     * @param id
     */
    void beforeExecuteEdit(EruptModel eruptModel,Object value,Serializable id, HttpServletRequest request);

}
